/*=============================================================================
    Tim Jones
=============================================================================*/

#ifndef _CTEXTURE_H_
    #define _CTEXTURE_H_

//=============================================================================

#include <stdio.h>
#include <stdlib.h>

#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL/SDL_opengl.h>

#include <gl/gl.h>
#include <gl/glu.h>

#include <IL/il.h>
#include <IL/ilu.h>
#include <IL/ilut.h>

#include <string>

//=============================================================================
class CTexture {
    public:
    	ILuint 		ImageName;

        GLuint     	TextureID;

        int         Width;
        int         Height;

    public:
        CTexture();

        //---------------------------------------------------------------------
        bool OnLoad(std::string File);

        bool OnLoad(SDL_Surface* Surface);

        void OnCleanup();

        //---------------------------------------------------------------------
        void Empty(int Width, int Height);

        //---------------------------------------------------------------------
        void Bind();

        //---------------------------------------------------------------------
        void RenderQuad(int X, int Y);

        void RenderQuad(int X, int Y, int Width, int Height);

        void RenderQuad(int X, int Y, int Width, int Height, int SrcX, int SrcY, int SrcWidth, int SrcHeight);
};

//=============================================================================

#endif
